package erfgame.frontend.desktop.view.terrain.iso.interaction;

import erfgame.core.Filter;
import erfgame.core.entity.Entity;

public class FilteringEntityInteractionDescriptionEntry {
	private Filter<Entity> filter;
	private InteractionDescription interactionDescriptionPrototype;
	private EntityInteractionDescriptionFactory childInteractionsFactory;

	public FilteringEntityInteractionDescriptionEntry( 
			Filter<Entity> filter, 
			InteractionDescription interactionDescriptionPrototype) {
		this( filter, interactionDescriptionPrototype, null );
	}

	public FilteringEntityInteractionDescriptionEntry( 
			Filter<Entity> filter, 
			InteractionDescription interactionDescriptionPrototype,
			EntityInteractionDescriptionFactory childInteractionsFactory
	) {
		this.filter = filter;
		this.interactionDescriptionPrototype = interactionDescriptionPrototype;
		this.childInteractionsFactory = childInteractionsFactory;
	}
	
	public Filter<Entity> getFilter() {
		return this.filter;
	}
	
	public InteractionDescription getInteractionDescriptionPrototype() {
		return this.interactionDescriptionPrototype;
	}
	
	public EntityInteractionDescriptionFactory getChildInteractionsFactory() {
		return this.childInteractionsFactory;
	}
}
